The present invention relates to peer-to-peer networks. These networks are made up of a set of interconnected nodes capable of self-management.
These peer-to-peer networks may be used for different applications, particularly telecommunications. For some of these applications, the nodes must save data. This data may be data relating to a communication session and must then be found again for any new event belonging to the same session A peer-to-peer network may be used as a distributed memory, and each node saves some of the data which is accessible via a distributed hash table.
Some applications require a high fault tolerance. Thus, in order to keep the failure of one of the network's nodes from irreversibly destroying the portion of the data that it was saving, that data may be duplicated on another node. This conventional redundancy mechanism, known as “buddy replication”, allows the system to tolerate most faults that affect the peer-to-peer network.
One implementation of the peer-to-peer network is explained in greater detail in the article “Chord: A scalable peer-to-peer Lookup Service for Internet Applications” by Ian Stoica, Robert Morris, David Karger, M. Frans Kaashoek and Hari Balakrishanan, ACP SIGCOMM 2001, San Diego, Calif., August 2001; pp. 149-160
There are articles which describe methods for improving fault-tolerance in a “Chord” network. For example, the article “Availability of multi-object operations” by Haifeng Yu, Philip B. Gibbons and Suman Nath suggests examining how data is duplicated in such a network.
Each of the network's nodes contains software modules that enable the system to function. These software modules enable the nodes to communicate using a predefined protocol, to process requests from other nodes or from systems outside the peer-to-peer network, to manage the duplication of data, etc.
From time to time, these software modules may need to be changed or updated. The software update mechanisms require temporarily shutting down the nodes, even if all that is being done is installing a new version that only corrects a minor problem, or provides a new but secondary feature.
However, in a peer-to-peer network, this restarting poses two problems.
First, since the nodes had saved data, this data must be retained during the restart phase.
Second, for some applications such as telecommunications applications, it is critical to ensure the peer-to-peer network's continuity of service. In other words, during the restarting of the nodes, the peer-to-peer network must continue to operate and provide the intended application service transparently for the devices of that service's users.